perm filename DOC[XGP,BGB] blob sn#023238 filedate 1973-02-03 generic text, type T, neo UTF8
00100	XAP & TVFONT MEMO.				        FEBRUARY 1973
00200	
00300	
00400	                   A TOY XEROX 2D GRAPHICS SYSTEM.
00500	
00600	                          Bruce g. Baumgart
00700	
00800	ABSTRACT:
00900	
01000		This memo explains a toy system for creating  xerox  graphics
01100	output;   these   programs   are  intended  only  for  amusement  and
01200	demonstration; they are not intended to be system  utility  programs.
01300	Furthermore,  the  file  formats explained in this memo are not to be
01400	taken seriously, because as first hacks at a new technology they  are
01500	necessarily  narrow  gauged,  the  author feels that it is really too
01600	early to be discussing standards and  rules  of  compatibility.   The
01700	programs are coded in PDP-10 machine code via the FAIL assembler.
01800	
01900	
02000	
02100	CONTENTS:
02200	
02300		Toy Programs:
02400	
02500			XAP  -  Xerox Assemble and Print.
02600			TVFONT  -  Television Font generator.
02700		
02800		Toy File formats:
02900	
03000			XAP's Random Graphics File Format.
03100			XAP's Font File Format.
03200			TVFONT's Font File Format.
     

00100	XAP - XEROX ASSEMBLE AND PRINT.
00200	
00300		XAP allows the user to specify a font file mapping under which
00400	the text of a given XAP random-graphics
00500	file will be assembled and printed
00600	on the XGP.
00700	
     

00100	TVFONT - TELEVISION FONT GENERATOR.
00200	
00300			Ignoring  all  frills,  TVFONT provides bidirectional
00400	conversion between two basic kinds of image representation;  the  bit
00500	array image and the polygon edge image:
00600	
00700		   OPERATION	  OPERAND      RESULT
00800	
00900		1. MAKE CONTOUR:   BITS    →  POLYGONS.
01000		2. MAKE REGION:  POLYGONS  →    BITS.
01100	
01200		Minor   image   representations   and   conversions  such  as
01300	television video rasters and character font bit  arrays  are  readily
01400	obtained  from  one  or  the  other  major  image  representation  by
01500	thresholding or repacking.   The main reason for bothering  with  the
01600	polygon	image  representation is that some kinds of drawing, scaling,
01700	and shaping are easier to do in the polygon representation.
01800	
01900		In a typical sequence, TVFONT is used to generate a character
02000	set from a font book or from a designers hand drawings with a minimal
02100	amount  of  human  assistance.   Television pictures of the character
02200	forms is read from a camera or from a disk file and can converted  by
02300	thresholding  into  a  bit array. The edges in the bit array are then
02400	found to obtain a polygon representation of the black regions of  the
02500	television  picture.   The letters are isolated and identified by the
02600	operator and some editing of the location, scale  and  shape  of  the
02700	polygons  is  allowed. Finally the polygons are converted back into a
02800	bit array representation and packed into a font file.
     

00100	XAP's Random Graphics Absolute File Format.
00200	
00300		XAP's Random Graphics absolute file format is like a glorified III
00400	buffer  which  may  contain  not  only  text and vectors but also bit
00500	arrays and relative font specification.  The word "random" is used to
00600	emphasive that the author is well aware that a utility file format of
00700	this  kind  must  be  scan  line  ordered  for  the  sake  of  system
00800	efficiency. The word "Relative" is used to suggest
00900	that the
01000	exact Font selection has not yet been bound.
01100	
01200		
     

00100	XAP's Font File Format.
00200	
00300		Let  the words of the file be serial numbered in octal from 0
00400	to whatever. The first 128  words  of  the  file  then  occupy  words
00500	numbered 0 to 177 and contain pointers to glyphs. The lowest possible
00600	glyph pointer is 200. A glyph is a block of three or more words,  the
00700	first three words of a glyph are a header and the remaining words are
00800	a bit array.
00900	
01000		The right half of the first word of a glyph header  specifies
01100	the number of words wide the bit array is. The left half of the first
01200	word specifies the number of rows in the bit array.  The  second  and
01300	the  third  of the glyph header are relative row,,column vectors; the
01400	second word being a vector to where the upper left most  bit  of  the
01500	glyph  should be place relative to XAP's pseudo beam locus (or pseudo
01600	pen position, depending on which obsolete technology you prefer). The
01700	third  word  is  a  vector  to  the terminal point of the glyph. This
01800	allows lower case letter and punctuation marks  to  use  fewer  words
01900	than capital letters and fancy glyphs; it also allows for non-spacing
02000	characters and arbitrary "spacing" characters.
02100	
     

00100	TVFONT's Font File Format.